Dockerfile
# 使用官方的 Python 基礎映像
FROM python:3.11-slim
# 設置工作目錄
WORKDIR /app
# 複製當前目錄的內容到容器中的 /app 目錄
COPY . /app
# 安裝 Python 依賴
RUN pip install --no-cache-dir -r requirements.txt
# 設置環境變量
ENV FLASK_APP=app.py
ENV FLASK_RUN_HOST=0.0.0.0
# 暴露 Flask 應用使用的端口
EXPOSE 5000
# 執行應用程序
CMD ["flask", "run"]
requirements.txt
Flask==3.0.3
Flask-SQLAlchemy==3.1.1
Flask-Migrate==4.0.4
Flask-Login==0.6.3
docker-compose.yml
version: '3.8'
services:
web:
build: .
ports:
- "5000:5000"
environment:
- FLASK_APP=app.py
- FLASK_ENV=development
volumes:
- .:/app
depends_on:
- db
db:
image: postgres:14
environment:
POSTGRES_USER: flask_user
POSTGRES_PASSWORD: flask_password
POSTGRES_DB: flask_db
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:
修改 app.py
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://flask_user:flask_password@db:5432/flask_db'
構建並啟動容器
docker-compose up --build
這個命令會根據 Dockerfile 來構建映像,然後啟動容器。應用程序將在 http://localhost:5000 上運行。